比特精灵简介

比特精灵是一款界面美观,使用简单,功能强大的BT客户端.C++全新内核.它不仅提供BitTorrent协议的完全实现,而且提供强大的个性化功能.

比特精灵现有功能

  1. 智能可控的缓存功能,尽可能的保护硬盘.
  2. 在下载过程中,需要时才创建文件.
  3. 高速下载,挑战网速极限.
  4. 强大的管理功能,文件分类管理,支持自定义类别.
  5. 可以对每一个Torrent中的文件进行选择性的下载.
  6. 实用的全局及单独任务的速度控制.
  7. 详细的对等连接信息.可以在任务运行的时候关闭不合适的连接.
  8. 支持附加tracker,可以在任务运行中加入多个tracker,进一步提高速度.
  9. 当连接的速度过慢的时候自动关闭该连接,有效利用资源.
  10. 内存池技术,支持在系统可用内存过低时释放内存以及是内存池利用率不高时压缩内存池.
  11. IE集成.
  12. 可开关的气泡提示,及时提示运行状态.
  13. 当磁盘空间不足的时候自动中止任务.
  14. 清晰明了的程序运行状态.
  15. 下载队列,及计划下载.
  16. 智能可控的网站收集器.
  17. 监视剪贴板.
  18. 极快的文件检测速度,进一步保护硬盘.
  19. 支持HTTP/SOCK4/SOCK5代理,让你下载无限制
  20. 简单易用美观的用户界面.
  21. 自定义连接协议
  22. 种子市场
  23. P2P聊天
  24. 数据压缩传送
  25. 连接共享
  26. 所有任务只监听一个端口
  27. 自动设置XP的网络连接防火墙(ICF),程序退出时自动删除设置,保证安全
  28. 所有Windows平台UPNP端口映射功能
  29. 黑名单功能
  30. 支持手动添加连接

感谢您使用比特精灵，如果您在阅读本文件后仍然有疑问，可以到官方论坛或来信告诉我们。最新版本可以到我们的官方网站下载

Copyright © LANSPIRIT.NET 2004. All Rights Reserved.Composed by GoKu


快速开始

快速添加新任务

程序安装完毕后您可以通点击扩展名为torrent的种子文件来启动比特精灵或者在浏览器中右键点击一个种子链接再选择用比特精灵下载启动比特精灵。
按照前面两种方法启动比特精灵后都会出现右图所示的添加任务窗口，按下左下角的高级按钮可以展开窗口进入高级设置模式，在高级模式中您可以更自由的定制比特精灵的下载，当然前提是您需要有一定的电脑基础（具体的设置介绍请查看任务属性设置）。如果你在任务类型处选择的是立即，在您按下确定后比特精灵就会开始下载了。


任务属性设置

常规
附加服务器
文件设定
扩展

常规(以高级模式为例)

Torrent:该任务种子文件路径,如果是通过IE菜单添加的任务,那么比特精灵会自动”Torrent”后面的编辑框填入该Torrent文件的URL链接,否则,你需要手动添加Torrent文件的磁盘路径或者是URL路径;

类别:该任务的类别,在类别一栏为该任务选择类别,如果无类别设置,比特精灵会将该任务保存在默认的基准路径(通常是安装磁盘的Downloads目录),您可以通过”编辑”按钮来改变类别路径或者添加/删除类别

保存到:手动指定该任务下载文件的存放位置

重命名:对该任务的根目录或文件(任务只包含一个文件时)进行重命名

缓冲块:缓冲块指的是该任务在运行的时候能使用的最大缓存区块个数,用于指定任务缓存的大小.比特精灵默认的标准区块大小为256KB.如果任务的区块大小不同于默认区块,比特精灵会自动转化为默认区块来决定该任务的最大缓存.例如:某任务的实际区块为512KB,设置的最大缓存区块为50,则该任务的最大缓存为(256*50)KB,实际最大缓存区块数目为50/(512/256)=25个.比特精灵正是采用缓存的技术来保护硬盘,最大缓存区块的合理设置依网络速度和硬件设置而各不相同.

引用:如果是通过IE浏览器右键菜单点击用比特精灵下载添加任务的,那么该栏将显示您是从哪个页面URL添加该任务的

最大下载速度:限制该任务的最大下载速度

最大上传速度:限制该任务的最大上传速度,注意:为了大家都能更快的完成下载请尽量不要限制速度

最大连出连接数:限制最大连出连接数,注意:连入和连出连接都可以下载和上传

最大连入连接数:限制最大连入连接数,注意:连入和连出连接都可以下载和上传

做种时间:设定下载完成后继续做种的时间,下载完成后关机受到这个选项的影响,需要在做种时间达到后才执行关机

在下载开始前预先分配磁盘空间:选上该选项,比特精灵将会在下载前预先分配磁盘空间,这可能会耗费较长的时间和较高的CPU,特别是任务比较大的时候,但是可以减少磁盘碎片,并且保证有足够的空间来完成下载任务.如果不选的话,比特精灵将较快地进入连接状态,但是不能保证有足够的磁盘空间(在下载过程中,如果磁盘空间不足,比特精灵会自动中止任务)以及可能会产生一些磁盘碎片.

任务类型:有手动,立即,计划(等候运行),计划(在指定时间运行)几种可以选择,
手动:选择后将不运行任务,等待手动用户启动
立即:马上开始运行任务
计划(等候运行):等待上一个任务完成后再运行这个任务,如果当前运行的任务少于最大同时任务数,任务是会被启动
计划(在指定时间运行):可以在下面的时间设定框中设定启动这个任务的时间

注译:可以输入注译,方便文件管理

保存默认设置:将当前设置保存为默认设置

简洁:切换到简洁模式

附加服务器

有时候一些种子在内含的服务器地址已经失效,但在其他服务器还有种子此时你可以在这里指定希望让BS检查种子信息的服务器地址
你可以在下图做标记的两个框中分别输入服务器名称和服务器地址然后按添加,来加入要检查的服务器地址,这样BS就会自动去这些服务器取得种子信息,如果你添加分服务器没有种子信息,除了占用程序一点时间外不会带来其他问题.
导入和导入按钮可以保存服务器列表方便下次使用

文件设定

如果种子文件已经下载到硬盘,文件设定页就会出现该种子所包含的所有文件,您可以在这里选择您希望下载的文件,也可以将某个文件另存到其他位置,注意:新版本中只有复选框被选中的文件才被下载.

另存为:可以把指定的文件另存到其他目录

重设:恢复原来的设定,重新再设定一次

全部选中:选中所有文件

反选:方向选择文件

随机文件选择模式:启用该选项后,BS将不按顺序下载文件,采用随机方式下载

当Torrent文件下载完成后停止任务:如果您是使用IE右键菜单中的使用比特精灵下载来添加任务的,选中该项后就只通过HTTP或FTP方式下载Torrent文件,完成后就停止任务,而不开始BT下载

扩展

HTTP协议

User-Agent:选择HTTP请求标识

用户定义:用户自定义HTTP标识

附加字段:附加HTTP标识字段

发送引用页:某些种子文件需要发送引用页才能下载,一般不需要选中

启用COOKIE:某些种子文件需要启用COOKIE才能下载

BT协议

用户标识:选择BT下载标识

用户定义:自定义用户标识

附加字段:定义BT标识附加字段

启用比特精灵扩展功能:选中后将启用比特精灵扩展功能,可以在下面的选项中选择是否启用扩展功能中的某现功能

启用Gzip数据压缩功能:选中后将在支持此技术的BT客户端间使用Gzip数据压缩传送数据,在某些情况下此功能可以大大提高 传输效率,也可由作种者采用以便发布更高清晰度的影视作品,关于GZIP技术请参考www.gzip.org

启用本任务的连接共享功能:选中后将在支持此技术的BT客户端间使用连接共享,分享对方得到的连接,此功能可以大大提高下载者寻找种子的能力

在本任务中启用种子超级市场功能:启用此功能后可以在BS的种子市场中和对方交换种子,详细使用请查看种子市场的帮助

将本任务的种子添加到种子超级市场的我的货物里:将本任务的种子放到我的货物中和别人分享

启用本任务的聊天功能:启用后本任务的其他下载者才能向你发出聊天邀请


设置向导
网络设置

选择您的网络链接类型：预设的机种网络链接类型，选择后下面的相关选项将跟着变化请按照下面的说明进行选择,以便比特精灵做出最优设置

虽然我处于局域网内，可是我已经开通端口映射：如果你在上面选择LAN，最大连接数就自动设置为1，此项打勾后将把你视为公网，连入数也相应增加

最大连出连接：你连接到其他用户的全局最大连接数

最大连入连接：其他用户连接到你的全局最大连接数

最大下载速度：最大全局下载速度

最大上传速度：最大全局上传速度

TCP绑定端口：自定义比特精灵使用的端口

随机端口：选中后比特精灵将随机分配一个端口

设置向导中网络连接类型各选项的说明:

1.Dailup (56Kbps): 老式Modem拨号上网 (适用于通常HTTP下载只有3-8KB/s的用户)

2.ISDN (128Kbps): ISDN (适用于通常HTTP下载只有10-15KB/s的用户)

3.ADSL / Cable (512Kbps): (适用于通常HTTP下载在20-80KB/s的用户)

4.T1 / ADSL (1Mbps): ADSL 1M的用户 (适用于通常HTTP下载在80-150KB/s的用户)

5.T3 / ADSL (2Mbps - 8Mbps): ADSL 2M或更高 (适用于通常HTTP下载能达到200KB/s的用户)

6.Office / Home LAN (1Mbps - 2Mbps): 家庭或办公室的小型局域网 (适用于通常HTTP下载在80-150KB/s的用户)

7.Office / Home LAN (2Mbps - 8Mbps): 家庭或办公室的中型局域网 (适用于通常HTTP下载能达到200KB/s或更高的用户)

8.Office / Home LAN (10Mbps - 100Mbps): 家庭或办公室的宽型局域网 (适用于通常HTTP下载能达到300KB/s或更高的用户)

9.OC3 / FTTB (10Mbps - 100Mbps): 与7类似, 不过本选项适用于有公网IP或有端口映射等支持连入的用户

10.Crazy Speed (umlimited): 疯狂模式, 你有很好的机器配置, 很好的带宽条件, 不在乎内存和CPU占用, 请选择此项设置

注: BS的单个任务极限平均速度在1300KB/s左右(瞬间速度可能会超过此限制), 视情况需要考虑出加速版.

性能设置

性能机制

优化为较好的程序性能：较少的缓冲区块,较低的内存占用,较多的磁盘操作

优化为较少的磁盘操作：较多的缓冲区块,较高的内存占用,较少的磁盘操作

自定义缓冲区块数和缓冲区块失效时间(两个数越大越占内存,但保护硬盘)

每个任务最大缓冲区块数：这里是全局设置,添加任务时可以根据块大小对单个任务进行设置

缓冲区块失效时间(单位:秒)：设定每个缓冲区块在内存中存放时间,当达到设定的失效时间后将从内存释放

在任务开始前预先分配磁盘空间(可以减少磁盘碎片,推荐)：如果不选择将在下载过程中根据需要分配磁盘空间

UPNP支持

查找UPNP设备：自动查找您网络中的UPNP设备

启用比特精灵的UPNP支持：打勾后将启用比特精灵的UPNP支持，如果你没找到UPNP设备请不要选中此项

如果有UPNP设备，采用随机端口进行绑定提高安全性：打勾后比特精灵将随机分配端口，并对这个端口进行映射，避免被人猜中端口进行攻击

允许比特精灵自动为Internet连接防火墙ICF添加端口映射：如果你打开了XP或2003中的ICF并且自己没做端口映射，选中此项将在ICF中添加端口映射（也可以说在ICF中建立通行规则）

请选择下载文件默认存放目录

默认保存路径：设定默认的下载文件存放路径

下载完成后检查病毒，请在这里选择杀毒软件：选择杀毒软件的路径

调用参数：如果杀毒软件调用需要参数请在这里填上

比特精灵扩展

在所有任务中启用比特精灵的扩展功能：将在所有任务中启用比特精灵扩展

启用数据压缩技术：启用后可以在支持此技术的用户间以压缩的方式传输数据

在所有任务中启用种子市场：将在所有任务启用种子市场功能

添加我的任务到种子市场作为我的货物：将自动把我的任务添加到种子市场中作为我的货物

启用连接共享：可以在支持此技术的用户间分享连接，已获得更多连接

告诉比特精灵您喜欢的昵称

昵称：自定义在聊天时显示的昵称

我不想和其他下载者聊天：打勾后将自动拒绝聊天邀请


主界面

主界面图解

以下是主界面图解，可以帮助您更快的了解比特精灵的主界面功能

任务列表

信息窗口

连接信息


菜单

主菜单

下面是模拟比特精灵菜单效果,蓝色部分为说明

右键点击系统托盘弹出菜单

右键点击任务窗口弹出菜单


个人设置

 常规
任务
其他
高级

常规

启动时将主窗口最小化:顾名思义,^_^

随windows启动:将在每次windows启动后自动运行比特精灵,可以配合计划下载功能使用

程序启动时就开始下载:启动比特精灵就自动开始运行下载队列中的任务

自动保存列表:设置加入几个任务后自动保存列表

退出时自动备份列表:正常退出比特精灵将自动备份列表,以防止因为死机等情况引起任务列表丢失

任务下载完成后马上移动到以下载:如果不选中该选项,下载完成后需要手动移动到以下载,注意:做种时间到达设定时间后才算任务完成

添加'使用比特精灵来下载'到默认浏览器:选中后将在默认浏览器(通常是IE或使用IE内核的浏览器)的右键菜单中加入一项使用比特精灵来下载

接受对方发起的聊天请求:如果不选中此项将自动所有拒绝聊天请求

当任务运行时防止电脑进入待机状态:防止因为长时间没有使用鼠标,键盘导致电脑自动进入进入待机状态的情况

当双击一个任务时:可以设定双击任务时默认执行的操作

任务

出现错误时重试次数和延时:当重试次数到达设定值后将自动停止任务

最大同时运行任务数:如果设定最大同时运行2个任务,那么当第3个任务加入后将不运行,而是等待正在运行的任务下载完成后才开始运行

记住每个任务的种子信息:停止任务时将当前的连接信息保存下来,这样下次即使连不上服务器也可以下载

把空的服务器当成错误处理:有时候某个种子已经过期,没有人再使用这个种子下载(服务器就没有这个种子的信息),选中这选项将把这种情况当错误处理

自动取得TCP绑定地址:由比特精灵自动取得TCP绑定地址,否则您需要手动输入绑定地址,如果没有特殊原因请使用自动取得

默认TCP监听端口:自定义一个可以使用的TCP端口给比特精灵使用,如果是内网(或者在有防火墙)请输入一个已经映射的端口.注意:1.内网用户并且没有做端口映射则无法使用这个端口与公网用户建立连接. 2.比特精灵不管运行多少任务都只监听一个端口,并且保证所有任务正常运行

停用TCP监听服务:选中后将不监听端口,这样会导致没有连入连接,使速度大大减低,如没有特殊原因请不要选中该项

全局下载速度限制,全局上传速度限制:限制全局上传下载速度

在开始下载前预先分配磁盘空间:选中该项将减少磁盘碎片产生,并且下载过程中不需再分配磁盘空间,但是在开始任务前将需要一点时间来分配磁盘空间,这段时间长短根据下载文件的大小而定

当下载完成后,继续做种: 设定下载完成后继续做种的时间

默认保存路径:设定默认的下载文件存放路径

Torrent路径:比特精灵会把每个任务的种子都复制一份到指定目录,以保证下次能正常续传,这里可以设定存放这些种子的目录

其他

监视剪贴板:选定后将监视系统剪贴板,当发现含有后面文本框中内容的链接时将弹出添加任务窗口,将自动添加该链接

绑定到.Torrent文件右键菜单:让比特精灵与.Torrent文件关联,以后双击.Torrent文件就会打开比特精灵并添加这个种子为任务

事件日志:设置默认以哪种方式查看事件日志(网络状态日志)

比例:设定输入图像波形曲线显示比例

关闭速度图像:选定后将不显示速度图像

下载速度,上传速度:设定下载速度和上传速度在速度图形中显示的颜色

默认任务类型:设定添加任务时默认执行的任务类型

关闭窗口时显示迷你工具栏:选定后将在关闭(最小化)窗口后自动显示迷你工具栏

尽量释放内存,如果内存低于(MB):设定当内存低于某个数值的时候比特精灵将自动释放内存

当所有任务完成后关机:当下载队列中所有任务都执行完成后关机(做种时间需到达设定值才算任务完成)

高级

类型:设定使用的代理类型,如果选择没有代理将不使用代理

由代理服务器解析域名:由代理服务器负责Tracker服务器的域名解析

服务器:代理服务器的地址 端口:代理服务器使用的端口 用户:某些代理服务器需要身份验证,可以在这里输入用户名 密码:该代理的密码

测试:测试代理服务器是否正常工作(有时候这个测试不是很准确,您可以试着开始一个任务如果正常运行则表示代理工作正常)

强制指定IP:由用户强制指定发送给Tracker的IP,如果指定了错误的IP可能导致没有连入连接 IP地址:强制指定的IP地址

启用快速种子检测功能:设定比特精灵自动检测种子/连接信息的间隔,注意:这个数字设定太短会加重服务器负担

压缩内存池,当内存池使用率低于:有时候设定了太大的内存池,导致内存空间浪费,在这里可以设定内存池使用率低于某个数值时由比特精灵自动释放浪费的内存空间给其他程序使用

长时间没有下载到数据则停止任务:设定当几个小时没有下载到数据时自动停止任务


P2P聊天功能

新版比特精灵引入P2P聊天功能,可以让用户在不对网络做任何设置的情况下实现点对点的聊天及发送文件,并且聊天信息是经过加密的(友情提醒:没有100%的安全,请使用者自行注意)下面我们就对这项功能进行介绍

您可以通过以下几种方式发送聊天邀请
1.在工具栏上点击 [image] 图标在弹出的选择聊天对象窗口中选择聊天对象或手动输入聊天对象的IP地址和端口号,然后按确定,等待对方回应
2.比特精灵会自动检测连接是否支持聊天功能,对于支持聊天功能的连接会在连接信息窗口用小图标表示,在连接信息窗口双击列表中带 [image] 小图标的连接,就会自动弹出选择聊天对象窗口,并且已经把您所选择连接的IP地址和端口填好了,您只要按确定就可以发送邀请了,注意:灰蓝色的图标表示对方在内网,他将收不到您发送的请求,只能由他向您发送聊天邀请

下面的几副图对聊天功能做了详细的介绍


种子市场

种子市场介绍

BSII有一个很有创意与突破的新功能就是种子市场的功能，该功能可以让你快速的与网友分享种子文件！
其实现过程是这样的：如果你启用了种子市场的功能，那么在你下载的过程中，每当建立一个新连接后，如果检测到对方也支持BS扩展协议，则会向对方发送请求货物列表的要求，对方收到请求后，根据自身的设置，将他的货物列表发送给你，这个过程的数据传送是经过GZIP压缩的，并且只传送基本信息，所以仅占用很少的网络流量。你在接收到货物列表后，就将这批货物加到“种子市场”的“对方货物”列表里。同理，对方也可以这样请求你的货物列表。

在具体应用中，要注意以下问题：

1 目前只有BSII支持这些扩展协议（BSI也不支持），我们会尽快与其它主流BT软件作者联系，以便广大BT用户都能轻松自由的享 　受这些新功能；

2 这些数据传送都经过GZIP数据压缩，并且只在对方支持的情况下才有可能产生流量，所以仅占用很少很少的流量，不影响下载；

3 你可以在任务列表中直接用右键菜单“添加任务到市场”来将某个任务添加到市场作为自己的货物，在添加的时候，请注意：

A 最好能在“链接”或“注释”里给出种子文件的原始下载链接，这样如果某个网友对你的货物感兴趣，既使这时你们俩之间不存在连接，网友也能通过该链接添加任务；

B 请注意设置货物的期限，BS默认是7天，也就是说在7天后，该货物会自动被BS从市场上撤走，你可以自由修改期限；

C 如果有用户请求某项货物，并且你们之间存在连接，并且你允许BS传送种子文件，则BS会将种子文件传送给对方，同时将该货物的请求数加1，以便货物发布者查看访问量。如果你不希望BS传送种子文件给对方，可以将该货物的Torrent一项清空，或在“个人选项”里不选中“传送种子文件”。

D 当传送种子文件时也是采用数据压缩传送的，尽可能的降低网络流量；

4，如果你相中了某项货物，可以用右键菜单的“发送请求”向对方请求种子文件，如果你们俩之间存在连接，并且对方允许传送种子文件，则过一会（视网络情况需要8秒或更长时间）你就能收到对方的种子文件了。待货物的状态变为OK后，就可以添加任务了（选定该货物，点“添加新任务”）。如果对方不允许传送种子文件，但在链接里给出了种子文件的下载链接，你也可以在选定该货物的情况下，点“添加新任务”来添加任务（无需发送请求）。

使用说明

我的货物：显示自己的货物

对方货物：查看其他用户的货物

关键字：可以输入关键字然后按查找来查找种子文件

分类：设定种子的类型方便查找

期限：设定种子有效期限

链接：种子的链接地址（可以在这里输入链接方便其他用户下载）

torrent：种子在本地磁盘的位置

返回：返回主窗口

刷新：刷新种子信息列表

提出请求：向种子的主人提出请求,向对方请求种子文件，如果你们俩之间存在连接，并且对方允许传送种子文件，则过一会（视网络情况需要8秒或更长时间）你就能收到对方的种子文件了。

添加新任务：把选中的种子添加为新任务，对本地的种子和市场中包含链接信息的种子有效

查找货物：通过输入的关键字查找货物

再次查找：重复前一次的查找

保存货物：保存修改后的货物信息

更新货物：更新货物信息

清空货物：清空所有货物，无法还原


使用BS Torrent Builder制作种子

启动Torrent 专家后，点击文件选添加文件，然后选择要添加的文件，并在Announce中填入Http://btbtbt.vicp.
net 在可选Annouce列表中可以填入你知道的其他Tracker服务器，然后按制作，再选择种子文件的保存位置，过一会种子就做好了，到论坛上发布它吧。


BSII扩展协议

比特精灵(BitSpirit)扩展协议

1 前言：

从理论上来说，所有的通信协议都是可以向后兼容的。对通信程序而言，为了协议的扩充性及实现的兼容性，通常都会固定每个数据包的格式，同时在实现上会做如下处理：对于未知含义的数据包，只要其组成结构遵从协议包结构规则，则应忽略而不是视为错误。但是，官方版BT（根据继承性还包括大多数基于官方版内核做的改版BT）在实现上禁止了这种兼容性。因此，在目前的测试阶段，BS采用了一种“取巧”的手段来实现扩展。

2 BT协议介绍：

在BT协议里，有一个命令(0x07)是用于标识数据块，该数据包的格式如下：

数据长度 | 数据含义 | 数据内容 | 备注
4 | 数据量 | ? | 从命令ID开始算
1 | 命令ID | 0x07 |
4 | 区块索引 | ? | 从0到区块数 - 1
4 | 区块起始点 | ? | 从0到区块大小-1
? | 区块数据 | ? | 长度 = 数据量 - 9

BS 的作者在分析了当前的 BT 协议后，找到了一个在维持当前兼容性前提下实现扩展的策略：构造一个特殊的数据块。

3 BS 扩展协议的基础：

A 在 BS 扩展协议里， BS 构造了一个特殊的数据块，结构如下：

数据长度 | 数据含义 | 数据内容 | 备注
4 | 数据量 | ? | 从命令 ID 开始算
1 | 命令ID | 0x07 |
4 | 伪区块索引 | 0x00000000 | 固定为 0
4 | 伪区块起始点 | 0x00000002 | 固定为 2
? | 区块数据 | ? | 长度 = 数据量 - 9

B BS 的扩展协议基于如下一种判断：不会存在总大小为 2 个字节的 BT 发布内容。根据 BT 协议， BT 客户端有义务采用 SHA 校验来判断所收到的数据是否正确，同时，所有 BT 客户端在实现上也有义务判断所收到的数据块是否出于自身的请求。令人高兴的是，虽然官方版在收到未知数据包的情况下会关闭连接，但它在收到未知数据块的情况下却只会简单的忽略，这就为在兼容尽可能多的 BT 客户端的前提下实现扩充提供了一种可能。

4 BS 扩展协议的构成：

A 所有 BS 协议都是通过表 2 所描述的结构发送的，也就是说以一个特殊的数据块为载体，具体协议内容封装在表 2 的“区块数据”字段内。

B BS 扩展协议的数据包组成结构：

数据长度 | 数据含义 | 数据内容 | 备注
4 | 数据量 | ? | 从命令 ID 开始算
1 | 命令ID | 0x07 |
4 | 伪区块索引 | 0x00000000 | 固定为 0
4 | 伪区块起始点 | 0x00000002 | 固定为 2
1 | 扩展命令ID | ? | 见表 5
? | 协议数据 | ? | 长度 = 数据量 - 10

C 由于 BT 协议已经定义了数据包的长度，所以 BS 扩展协议不再定义数据包的长度。

D BS 目前已用的命令 ID ：

i. 特殊命令 ID ：

1. + ： 0x2B ，用于向连接对方声明启用某项功能；

2. - ： 0x2D ，用于向连接对方声明禁用某项功能；

3. 以上两个命令 ID 是固定的。在实现上，一个连接通过向对方发送： +II 表示支持扩展协议，发送： -II 表示禁用扩展协议；

4. 任何一方在未声明支持扩展协议前如果发送除 +II 或 -II 外的数据包，对方有权关闭连接（ BS 的实现是忽略而不是关闭）；

5. 通常情况下， +II 或 -II 的命令在握手结束，发送完 BitField 后；

6. 如果对方未声明支持 BS 扩展协议，则本地应默认对方是禁用的；

7. +II 和 -II 的数据包结构：

声明支持BSⅡ扩展协议（下表）

数据长度

数据含义

 数据内容 备注
4 | 数据量 | 0x0D
1 | 命令ID | 0x07
4 伪区块索引 0x00000000

固定为0
4

伪区块起始点

 0x00000002

固定为2
1 扩展命令ID 0x2B

ASCII：+
3 协议数据

\x49\x49\x00

 ASCII；II\0

声明禁用BSⅡ扩展协议（下表）

数据长度 | 数据含义 | 数据内容 | 备注
4 | 数据量 | 0x0D
1 | 命令ID | 0x07
4 | 伪区块索引 | 0x00000000 | 固定为0
4 | 伪区块起始点 | 0x00000002 | 固定为2
1 | 扩展命令ID | 0x2D | ASCII：-
3 | 协议数据 | \x49\x49\x00 | ASCII：II\0

ii. 可用命令ID：

1. 理论上，除了0x2B和0x2D以外所有介于0-255之间的数都可以用作命令ID，各命令ID所含协议数据格式由开发者自行定义；

2. 推荐支持的命令ID：

A. ‘+'：0x2B，用'+'或'-‘命令声明自己是否支持GZIP压缩；声明支持GZIP数据压缩（下表）

数据长度 | 数据含义 | 数据内容 | 备注
4 | 数据量 | 0x0F
1 | 命令ID | 0x07
4 | 伪区块索引 | 0x00000000 | 固定为0
4 | 伪区块起始点 | 0x00000002 | 固定为2
1 | 扩展命令ID | 0x2B | ASCII：+
5 | 协议数据 | \x47\x5A\x49\x50\x00 | ASCII：GZIP\0

B ‘*'：0x2A，压缩过的区块数据，BSII支持在发送数据块前先进行GZIP压缩，以便提高网络传输效率；
数据压缩包格式（下表）

数据长度 | 数据含义 | 数据内容 | 备注
4 数据量 ? 从命令ID开始算
1 | 命令ID | 0x07
4 | 伪区块索引 | 0x00000000 | 固定为0
4 | 伪区块起始点 | 0x00000002 | 固定为2
1 | 扩展命令ID | 0x2A | ASCII：*
4 区块索引 ? 与BT协议类似
4 区块起始点 ? 与BT协议类似
4 压缩前数据量 ? 不含协议头

C ‘@' ： 0x40 ，反向提供本机地址。通常情况下，对于一个连入的连接，本地是不知道连接对方监听的 TCP 端口的，如果因为网络故障导致连接被断开的话，本地将不可能再主动与对方建立连接，通过 '@' 命令，连接发起方可以告知对方本地的监听端口（ IP 地址请直接取 TCP 连接的对方 IP ）。 （下表）本地反向提供地址

数据长度 | 数据含义 | 数据内容 | 备注
4 | 数据量 | 0x10 | 从命令ID开始算
1 | 命令ID | 0x07
4 | 伪区块索引 | 0x00000000 | 固定为0
4 | 伪区块起始点 | 0x00000002 | 固定为2
1 | 扩展命令ID | 0x40 | ASCII：@
4 | 保留 | 0 | 保留，请设为0
2 本地监听端口 ？ 本地TCP监听端口

D '%' ： 0x25 ，向连接对方请求共享连接信息。在默认 BT 协议里，连接的种子信息只能从 Tracker 服务器获取，而在具体实现上，其实服务器是有不确定性的，很多下载者在很多时候并不一定总能从服务器获取种子信息，这就导致了会有很大的时间上的浪费。 BSII 通过添加“连接共享”这个基于 BS 扩展协议的实现很好的解决了这个问题。连接一方通过向支持扩展协议的对方发送 '%' 命令请求对方共享连接信息。（下表） 向连接对方请求共享连接信息

数据长度 | 数据含义 | 数据内容 | 备注
4 | 数据量 | 0x0E | 从命令ID开始算
1 | 命令ID | 0x07
4 | 伪区块索引 | 0x00000000 | 固定为0
4 | 伪区块起始点 | 0x00000002 | 固定为2
1 | 扩展命令ID | 0x25 | ASCII：%
4 | 期望连接数 | 0 | 1到1024，参见下表

E ‘&' ： 0x26 ，发送连接信息，连接一方在收到对方的 '%' 命令后，向对方发送共享的连接信息。注意不要向对方发送超过对方期望连接数的连接数量（ BSII 默认是 256 个连接）。（下表）向连接对方发送连接信息
数据长度 | 数据含义 | 数据内容 | 备注
4 数据量 ? 从命令ID开始算
1 | 命令ID | 0x07
4 | 伪区块索引 | 0x00000000 | 固定为0
4 | 伪区块起始点 | 0x00000002 | 固定为2
1 | 扩展命令ID | 0x26 | ASCII：&
1 | 数据开始标志 | 1或0 | 参考：数据标志
1 | 数据结束标志 | 1或0 | 参考：数据标志
? 连接信息 ? 经过GZIP压缩

上表中的连接信息是由很多个连接单元 (unit) 组成的，每一个 unit 结构定义如下：

const int PeerSeedSize = 64;

struct tagPeerSeed

{

char None[25]; //25Bytes,not used yet, please set all bytes to 0

int Port; //4Bytes,sorry~~, get it in this way: (ntohl(Port)&0xFFFF)

ulong Address; //4Bytes, in network byte order

char ID[20]; //20Bytes. Peer Id

char Reserved[PeerSeedSize-25-4-4-20]; //set all bytes to 0

};

从目前来看，这个结构有点庸肿，但是由于目前 None 和 Reserved 字段都是 0 ，所以用 GZIP 压缩可以达到很高的压缩比，同时也为将来扩展留下了很好的后路。

注： BSII 支持接收未经过 GZIP 压缩的连接信息，但所有 BSII 发送的连接信息都是经过 GZIP 压缩的，这样只占用很少的网络流量。

F 目前 BSII 已经使用的其它命令 ID ： '?', ‘=', ‘#', ‘$', ‘(‘, ‘)' ；

G 各个软件作者可以自由使用 0x80-0xFF 的命令 ID ，只要你能确保那是自己定义的数据包 J ，但对于 0x00-0x7F 的命令 ID ，请尽可能的先跟其他软件作者联系 ( 比如 BS) 。

附注 1 ：关于数据压缩 BS 采用基于 zlib 的 GZIP 压缩技术，当把内存数据块进行压缩时，压缩后的数据块包含标准的 GZIP 数据头，但不包含 GZIP 文件的结束标志 (zlib 只提供了基于文件的 GZIP 实现，没有提供基于内存的 GZIP 压缩实现， BS 的作者根据 zlib 自行实现了一个模块用于对内存块进行压缩，如果你需要这方面的资料可以跟 BS 的作者联系 ) 。

附注 2 ：关于在 '%' 命令里提到的数据标志：因为 BT 协议定义了数据包最大不能超过 128KB ，所以 BS 的扩展协议的数据包一般不超过 64KB ，这样在传送大数据块时力有不足，所以 BS 通过数据标志来组合大块数据，在表 10 中有一个数据开始标志和数据结束标志，以下是其含义：

1 数据开始标志： 1 表示这块数据是一大块数据的开始， 0 则表示本块数据是前一块未完数据的继续；

2 数据结束标志： 1 表示这块数据是一大块数据的结束， 0 则表示本块数据是前一块未完数据的继续；

3 如果前一个数据块未包含结束标志，而本数据块包含了开始标志，则表示以前的数据已经作废，对方必须重新表示当前数据；

4 如果所有数据可以通过一个数据块发完，那么可以将开始和结束标志都置为 1 ；

5 以上协议定义只是 BS 作者对 BT 扩展所做的一些尝试。 BS 作者很愿意就扩展应采用的方式与具体扩展内容的实现与各 BT 软件作者进行商讨，共同就 BT 扩展而努力。另外， BS 目前扩展所用的手段是很取巧的，我们本身不推荐采用这种方式扩展，所以希望能跟各 BT 软件作者共同商讨一个合适的扩展方式。但是也希望大家能把更多的注意力放在扩展的内容上，不用流于表面，在扩展方式上浪费太多精力。

6 这份文档只简要叙述了 BS 扩展协议的实现方式及一些基本内容， P2P 聊天，种子市场等基于该实现方式的后续扩展尚未添加。

作者：比特精灵
联系： webmaster@lanspirit.net
 初稿： 2004-02-10


如何在外部程序中调用BS？

目前BS仅开放了添加任务的接口,主要供BS与IE的集成之用,但同样可以用其它任何支持COM的编程语言来调用,以下是VB的示例代码:
首先,你需要确保你的机器上安装了BS,并在VB的Project的References...里选定BLink 1.0 Type Library
然后,调用代码如下:

Dim BS As BLINKLib.Link
Set BS = New BLINKLib.Link
BS.AddUrl "http://www.infohash.net/download/bssetup.torrent", "BSII Beta1", "www.infohash.net"
Set BS = Nothing

在这里有一点需要注意的是,由于BSIIBeta2以前的版本没有为外部调用作优化,因此,如果在你调用AddUrl前,BS没有运行,则BS会被启动,但可能会使窗口焦点变得混乱,但如果在你调用AddUrl前BS已经在运行,则窗口焦点是正常的.这个问题在BSII Beta2中已经得到了优化。
AddUrl(BSTR torrent, BSTR comment, BSTR refer): 参数含义正如参数名一样.对于后两个参数,可以设为""表示无.
此外,BLINKLib.Link还有一个函数ForceRunning(void): 启动BS.如果当前BS已经启动,不会导致产生两份BS的实例.
BS支持同时添加多个TORRENT文件,但当前尚未开放此接口.在将来的版本中,BS将开放更多的任务控制接口供外部扩展用.
此外,BS还将开放种子市场的控制接口供外部扩展.


一些比特精灵相关的源代码

比特精灵v2.1的多端口服务器插件tracker.dll的源代码

// Tracker.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}

extern "C" DWORD __stdcall TranslateTracker(const char* pTracker, int pnPort[], DWORD dwMax)
{
DWORD dwRet = 0;
/*check params*/
if(pTracker==NULL||pnPort==NULL||dwMax==0)return 0;
if(stricmp(pTracker,"bt.eastgame.net")==0)
{//6969,81,82,8080
pnPort[dwRet++] = 6969; if(dwRet>=dwMax)return dwRet;
pnPort[dwRet++] = 81; if(dwRet>=dwMax)return dwRet;
pnPort[dwRet++] = 82; if(dwRet>=dwMax)return dwRet;
pnPort[dwRet++] = 8080; if(dwRet>=dwMax)return dwRet;
}
else if(stricmp(pTracker,"bt.gamesir.com")==0)
{//6969,8080
pnPort[dwRet++] = 6969; if(dwRet>=dwMax)return dwRet;
pnPort[dwRet++] = 8080; if(dwRet>=dwMax)return dwRet;
}
else if(stricmp(pTracker,"btfans.3322.org")==0)
{//6969,8000
pnPort[dwRet++] = 6969; if(dwRet>=dwMax)return dwRet;
pnPort[dwRet++] = 8000; if(dwRet>=dwMax)return dwRet;
}
return dwRet;
}

BS2.0FINAL自带的可用内存回收工具MemFree.exe的源代码

// MemFree.cpp : Defines the entry point for the application.
//

#include "stdafx.h"

/*return the operation should be persumed*/
const int MemCount = 400;
const int BlockSize = 10L * 1024 * 1024;
int CalcMemory()
{
MEMORYSTATUS mms;
memset(&mms,0,sizeof(mms));
mms.dwLength = sizeof(mms);
GlobalMemoryStatus(&mms);
mms.dwTotalPhys /= BlockSize;
mms.dwTotalPhys = mms.dwTotalPhys * 2 / 3 + 2; //
return (mms.dwTotalPhys==0||mms.dwTotalPhys>=MemCount) ? 15 : (int)mms.dwTotalPhys;
}
void DoFreeMemory()
{
int nToDo = CalcMemory();
int nCount = 0;
char* ppMem[MemCount+1];
char* pTmp;
/*init pointer to zero*/
memset(ppMem,0,sizeof(char*) * MemCount);
/*alloc memory*/
while(nCount<nToDo)
{
pTmp = new char[BlockSize];
if(pTmp==NULL)break;
ppMem[nCount++] = pTmp;
memset(pTmp,0,BlockSize);
Sleep(200);
}
/*free memory*/
nCount = 0;
while(nCount<nToDo)
{
if(ppMem[nCount])delete[] ppMem[nCount];
nCount++;
}
/*job done!*/
}

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HANDLE hFreer = CreateMutex(NULL,FALSE,"BitSpirit - Memory - Freer");
if(hFreer==NULL||GetLastError()==ERROR_ALREADY_EXISTS)return 1;//failed or engaged
DoFreeMemory();
CloseHandle(hFreer);
return 0;
}


比特精灵 FAQ

常见问题

1 能介绍一下比特精灵吗?

2 比特精灵有哪些主要功能和特点?

3 怎样开始一个新的任务?任务属性中的各个选项分别表示什么意思?有什么作用?

4 比特精灵可以用于内网吗?

5 比特精灵支持代理吗?

6 比特精灵可以将下载的文件存放到网上邻居吗?

7 怎么选择文件下载?

8 选择"开始下载前预分配磁盘空间"和不选有什么不同?

9 怎样才能降低比特精灵的内存使用?

10 为什么有时候连接失败,比特精灵并不尝试重试?

11 怎样向正在运行的任务附加tracker?

12 比特精灵能自动检测新版本吗?

13 为什么有时候在任务信息中显示的已完成数大于任务栏中显示的完成数?是程序出错了吗?

14 如何指定比特精灵的上传端口?

15 我选择了"当所有任务完成后关机",可为什么所有下载都已经完成了,比特精灵还在运行?

16怎么打开比特精灵的端口映射功能?

17 我能看到我的对等连接的完成状况吗?

18 怎样才能提高比特精灵的下载速度?

19 最大下载/上传速度是干什么用的,该怎么设置?

20 任务信息里的可用连接/种子数和已连接/种子数有什么区别?

21 为什么我运行比特精灵的时候,系统不能进入待机状态?

22 我是内网用户,能主动做种吗?为什么我的上传速度很慢?

23 我是内网用户,为什么我的连接列表里只有蓝色的出去的连接?

24 为什么我什么都当不到,一直 显示"有错误发生,请等待重试"?

25 在没有种子的时候,有没有可能完成下载任务?

26 关于CPU占用率、错误数据量和最小化

27 比特精灵是免费的吗?
1 能介绍一下比特精灵吗?
比特精灵是一款界面美观,使用简单,功能强大的BT客户端.C++全新内核.它不仅提供BitTorrent协议的完全实现,而且提供强大的个性化功能.
2 比特精灵有哪些主要功能和特点?
1) 智能可控的缓存功能,尽可能的保护硬盘.
2) 在下载过程中,需要时才创建文件.
3) 高速下载,挑战网速极限.
4) 强大的管理功能,文件分类管理,支持自定义类别.
5) 可以对每一个Torrent中的文件进行选择性的下载.
6) 实用的全局及单独任务的速度控制.
7) 详细的对等连接信息.可以在任务运行的时候关闭不合适的连接.
8) 支持附加tracker,可以在任务运行中加入多个tracker,进一步提高速度.
9) 当连接的速度过慢的时候自动关闭该连接,有效利用资源.
10) 内存池技术,支持在系统可用内存过低时释放内存以及是内存池利用率不高时压缩内存池.
11) IE集成.
12) 可开关的气泡提示,及时提示运行状态.
13) 当磁盘空间不足的时候自动中止任务.
14) 清晰明了的程序运行状态.
15) 下载队列,及计划下载.
16) 智能可控的网站收集器.
17) 监视剪贴板.
18) 极快的文件检测速度,进一步保护硬盘.
19) 支持HTTP/SOCK4/SOCK5代理,让你下载无限制
20) 简单易用美观的用户界面.
3 怎样开始一个新的任务?任务属性中的各个选项分别表示什么意思?有什么作用?
可以通过主窗口工具栏中的"添加任务"按钮或者菜单"编辑->添加任务"来开始一个新的任务,或者在IE浏览器中右击Torrent文件的URL链接,在弹出的菜单中选择"用比特精灵下载". 这样你会看到添加新任务界面,指定类别和路径,按确定添加新任务.在高级选项里,你可以看到关于该任务的详细设置.以下是关于有关选项的简单说明.点击图解BS之添加任务篇了解详细信息.

1) 该任务的Torrent文件:如果是通过IE菜单添加的任务,那么比特精灵会自动”Torrent”后面的编辑框填入该Torrent文件的URL链接,否则,你需要手动添加Torrent文件的磁盘路径或者是URL路径;

2) 该任务的类别或路径:在类别一栏为该任务选择类别,如果无类别设置,比特精灵会将该任务保存在默认的基准路径(通常是安装磁盘的Downloads目录),您可以通过”编辑”按钮来改变类别路径或者添加/删除类别;您也可以在"保存到"一栏直接指定保存路径.

3) 最大缓存区块:最大缓存区块指的是该任务在运行的时候能使用的最大缓存区块个数,用于指定任务缓存的大小.比特精灵默认的标准区块大小为256KB.如果任务的区块大小不同于默认区块,比特精灵会自动转化为默认区块来决定该任务的最大缓存.例如:某任务的实际区块为512KB,设置的最大缓存区块为50,则该任务的最大缓存为(256*50)KB,实际最大缓存区块数目为50/(512/256)=25个.比特精灵正是采用缓存的技术来保护硬盘,最大缓存区块的合理设置依网络速度和硬件设置而各不相同.

4) 阻塞比例:比特精灵允许设置阻塞比例,即当一个连接的上传总大小和下载总大小达到所设置的比例时,自动阻塞该连接.这个选项用来阻塞哪些恶意的”水蛭”用户(做种时没有此限制). :)

5) 下载前预分配磁盘空间.选上该选项,比特精灵将会在下载前预先分配磁盘空间,这可能会耗费较长的时间和较高的CPU,特别是任务比较大的时候,但是可以减少磁盘碎片,并且保证有足够的空间来完成下载任务.如果不选的话,比特精灵将较快地进入连接状态,但是不能保证有足够的磁盘空间(在下载过程中,如果磁盘空间不足,比特精灵会自动中止任务)以及可能会产生一些磁盘碎片.

6) 下载连接数和上传连接数.下载连接数指的是比特精灵从本地发起的主动连接(在连接页面表示为向上的兰色的箭头),而上传连接数指的是连入的连接数(在连接页面表示为黄色的向下的箭头).通常,上传连接比较容易获得数据.
4 比特精灵可以用于内网吗?
可以，只要你能正常访问Internet,你就能使用比特精灵.
5 比特精灵支持http代理吗?我该去哪里配置?
比特精灵从1.2.0版本起开始支持http代理,2.0以后支持sock4/sock5代理.请到选项->个人配置->高级选项里进行相关的配置.
6 比特精灵可以将下载的文件存放到网上邻居吗?
可以.在添加任务的时候将保存路径设置为网上邻居中的相关目录.
7 怎么选择文件下载?
在”添加任务“时,你可以在"文件选项"里选择文件,在任务运行阶段,你可以通过"文件信息"页实现文件过滤性下载.具体的做法是,选中文件,”切换”状态(下载或者不下载),并将该文件前头的复选框打勾,然后确定. 参看图解BS之添加任务篇(三).
8 选择"开始下载前预分配磁盘空间"和不选有什么不同?
选上该选项,比特精灵将会在下载前预先分配磁盘空间,这可能会耗费较长的时间和较高的CPU,特别是任务比较大的时候,但是可以减少磁盘碎片,并且保证有足够的空间来完成下载任务.如果不选的话,比特精灵将较快地进入连接状态,但是不能保证有足够的磁盘空间(在下载过程中,如果磁盘空间不足,比特精灵会自动中止任务)以及可能会产生一些磁盘碎片. 需要提醒的是,如果你需要选择文件下载,请不要预先分配空间,以避免不必要的资源浪费.
9 怎样才能降低比特精灵的内存使用?
如果您想降低内存使用,可以编辑任务属性,将最大缓存区块的数目设得小一些.其次,"选项->个人设置->其他选项"中的"尽量释放内存..."选项也会有所帮助.另外,比特精灵自1.1.0版本推出了内存池技术,更有效地管理和利用内存.如果您正在使用的是1.1.0或者更新的版本,建议选上"选项->个人设置->高级选项"中的"压缩内存池..."选项.
10 为什么有时候连接失败,比特精灵并不尝试重试?
有三种情况比特精灵不会尝试重试:其一,当tracker服务器返回HTTP40X错误号的时候,这表示您所请求的文件不存在;其二,当您选择"作为种子上传",但本地的种子文件有错误的时候;其三,该任务的重试次数已经达到了最大重试次数(可以在"选项->个人设置->任务属性"里设置).
11 怎样向正在运行的任务附加tracker?
编辑任务属性,在"trackers"页,依提示操作即可.需要提醒的是,只有左边的复选框被选中的Tracker才能真正生效. 参看图解BS之添加任务篇(三).
12 比特精灵能自动检测新版本吗?
可以.选上"选项->检查新版本",当有新的版本发布时,比特精灵会自动提醒您更新.建议您时常更新版本，因为无论在功能方面还是性能方面，比特精灵都会带给您意想不到的惊喜。
13 为什么有时候在任务信息中显示的已下载数大于任务栏中显示的完成数?是程序出错了吗?
这是正常现象.任务信息栏中的已下载数指的是该任务中比特精灵接受到的数据总和,其中可能包括错误的数据包以及已经部分下载但还未写到硬盘中的区块,而任务栏中的完成数指的是实际的写到硬盘中的数据. 另外,当任务停止后,信息栏显示的下载数可能比实际数要低,这是正常现象,待下次启动后会恢复正常.
14 如何指定比特精灵的上传端口?
在"选项->个人设置->任务属性->默认上传端口"中设置起始上传端口,比特精灵会以这个端口为起点,随着任务数的增加而递增。如设置的默认上传端口为16881,则第一个任务的上传端口为16881,第二个任务16882...从比特精灵v2.0 Bet2开始,比特精灵只需要1个端口就可以管理你的所有下载任务,也就是说比特精灵通常只使用第一个端口,除非碰到端口冲突.
15 我选择了"当所有任务完成后关机",可为什么所有下载都已经完成了,比特精灵还在运行?
如果任务属性中没有设定做种时间,比特精灵会在任务完成后自动做种一或2个小时再自动关机.
16 怎么打开比特精灵的端口映射功能?
从1.2.0 RC5版起,比特精灵就是默认支持端口映射功能的,您所需要做的就是确保在您的网关/路由上做了正确的NAT设置.
17 我能看到我的对等连接的完成状况吗?
当然.在连接列表的右边小窗口中显示的就是选中对等连接的完成状况.绿色的表示该区块可用(对方有,本地没有),灰色表示该区块不可用(对方和本地都没有),兰色表示本地已经完成了对该区块的下载.
18 怎样才能提高比特精灵的下载速度?
比特精灵的内核已经为高速下载做了最好的优化.从1.1.0RC2版本起,比特精灵的速度优势尤其明显.当然,合理的设置,有效地利用资源会让比特精灵有更好的表现.如果你是内网用户,而且不能做端口映射(即别人无法主动找到你,你的连接页面中只有兰色的向上的连接),那么建议你在任务属性中将上传连接设到最小,将下载连接设置得大一些;如果你有公网IP,或者虽然是内网用户,并且通过端口映射等措施,能够让别人访问你(这时你的连接页面中能看到黄色的向下的连接),那么,建议你让任务属性中的上传连接数大于下载连接数,因为通常上传连接(黄色箭头)更容易获得数据.关于连接的具体描述,请参阅问题2.另外,根据上网方式和硬件条件,设置合理的缓存区块也很重要.
19 如何进行下载/上传速度限制?
你可以通过全局速度限制和任务速度限制来实现对速度的控制.请到"选项->个人设置->任务属性"中设置最高全局上传/下载速度,在单个任务的任务属性里设置任务的最高全局上传/下载速度.任务的最高速度限制服从全局的速度限制.比如,全局的最高上传速度为300KB/S,而任务的最高上传速度为500KB/S,则实际运行中,以300KB/S为最高限制.需要提醒的,有时候比特精灵的瞬时速度显示会大于最高限制速度,这是由于任务调度,网络缓存等原因造成的,不用担心.任务的平均速度肯定会低于最高速度限制.另外还需要声明的是,比特精灵提供速度限制的选项,主要是考虑到用户需要同时进行多种网络活动,不希望比特精灵占据全部带宽的情况.请不要利用这个功能一味的只下载,不上传.实际上,无数的测试表明,当你上传越多(贡献越多)的时候,下载到的数据也越多(得到也越多),这正是BT的精神:我为人人,人人为我.
20 任务信息里的可用连接/种子数和已连接/种子数有什么区别?
连接/种子数指的是tracker服务器返回的种子连接数和种子数,已连接/种子数指的是当前任务已经成功建立连接的连接数和种子数.由于tracker服务器信息的实效性以及网络状况等原因,已连接/种子数会和连接/种子数有一些差距.
21 我用的是WINXP系统,为什么我运行比特精灵的时候,系统不能进入待机状态?
为防止由于系统自动待机而导致任务中止,比特精灵提供"当有任务运行时防止计算机进入待机状态的选项",且默认生效.如果需要待机,请把该选项去掉(选项->个人设置->高级选项).
22 我是内网用户,能主动做种吗?为什么我的上传速度很慢?
当然可以.下载完成以后,选择作为种子上传即可。如果你的网络支持端口映射,那么恭喜你,你能做一个名副其实的种子,不仅你能连别人,主动做种,别人也能顺利地找到你.另外,当你要主动做种子时,可以通过右键菜单的"作种子上传"-"快速检测"来快速作种,避开文件检查.
23 我是内网用户,为什么我的连接列表里只有蓝色的出去的连接?
这是因为你的网关或者路由器没有做端口映射,局域网以外的人无法访问到你.请联系网管,开通相应的端口映射(如果允许的话).
24 为什么我什么都当不到,一直 显示"有错误发生,请等待重试"?
在两种情况下您会得到该错误:1,你无法访问该服务器;2,该服务器忙或者已经关闭.通常遇到这类错误,比特精灵会自动重试,如果你确认只是因为服务器忙的话,建议耐心等待.
25 在没有种子的时候,有没有可能完成下载任务?
当然可能.只要你的所有对等连接持有的区块能组成一个完整的文件,你就能完成下载任务.在1.2.0以后的版本中,比特精灵提供任务完成可能性估算.在连接页面可以看到,比特精灵将完成情况分成5个等级,依次是,poor,not bad,good,very good和nice,并且提供对但个对等连接的估算和任务的整体估算.你可以根据这个估算来觉得是否继续该任务.
26 关于CPU占用率、错误数据量和最小化
1，国内某些基于原版/Shadow的改版通过去掉上传前的数据校验来降低所谓的CPU占用率，导致在很多情况下坏块被传送（这是我们详细测试的结果，如果有不对的地方，请及时指出）。
2，BS在最大化运行时会占用比较高的CPU，这是由于要更新界面及各种显示信息，通常情况下，你只要最小化运行BS，BS的CPU占用会降低到非常合理的范围。如果BS在后台运行超过2分钟或者系统3-5分钟没有任何操作，BS也会自动最小化。
27 比特精灵是免费的吗?
是的，比特精灵免费.我们愿与每一个用户分享使用精灵的权利.


隐 私 声 明

LANSPIRIT.NET 是比特精灵的官方站点，提供比特精灵各个版本的官方发布。 LANSPIRIT.NET 非常重视用户的隐私权，具体细节声明如下：

一 隐私权政策使用范围

本隐私权声明包括对 LANSPIRIT.NET 站点内容以及比特精灵 BT 客户端的声明，包括 LANSPIRIT.NET 站点资料的来源，站点用户的信息处理，以及比特精灵 BT 客户端信息使用。比特精灵官方论坛（一起悠游 & 比特精灵官方论坛）的隐私政策不在此列，以下所有的声明都不包括一起悠游 & 比特精灵官方论坛的相关内容。请访问 http://www.17yy.com/ 以获得一起悠游 & 比特精灵官方论坛的隐私声明。

二 访客信息以及 COOKIE

您无需登陆即可访问本站点除论坛之外的所有内容。本站不会收集您的个人信息和身份识别资料。 LANSPIRIT.NET 会自动接受并记录你的浏览器和服务器日志上的信息，其中主要是 您 的 IP 地址。本站会将此信息用于日访问量的统计 , 不做其他用途。本站不会在 您 的电脑上设定或者读取 COOKIE 。

三 比特精灵

比特精灵是一款 BT 客户端，大家通过比特精灵不但可以进行 BT 下载，还能方便地跟下载者交流。任何人都可以免费地使用比特精灵。比特精灵启动后，将与互联网连接，以传输和接受信息。

安全声明与使用规定

¨ 比特精灵是一款安全的下载软件，不包含任何木马，病毒，后门以及第三方软件。除了在您选定了“自动检测新版本”的选项时，会自动访问比特精灵官方发布站点，检查新版本信息并提示用户更新外，没有任何其他与任务、功能无关的网络活动。

¨ 您可以通过比特精灵与其他下载者进行实时交互，分享种子信息，也可以通过选项设置关闭这些功能。比特精灵不会在任何未经您允许的情况下搜集包括下载任务信息在内的您的任何私人信息。

¨ 您在使用比特精灵进行 BT 下载的时候，根据 BT 协议， tracker 服务器和对等连接都能看到您的 IP 地址和端口。

¨ 您在使用比特精灵的聊天功能的时候无须注册，但可以设置昵称（这时对等连接除了能看到您的 IP 和端口之外，还能看到您的昵称）。比特精灵不会收集您的任何私人资料。您选择打开聊天功能，其他用户就可以向您发送聊天请求，您可以选择接受或者拒绝。比特精灵不会保存您的聊天内容，但是我们向用户提供保存聊天内容的功能。请注意，即使您没有选择保存聊天内容，与您聊天的用户同样可以使用他们的比特精灵中的功能保存聊天内容。

¨ 在您选定打开种子市场功能并且在“任务属性”的“扩展”页选定"将本任务添加到我的货物里"时，比特精灵会将该任务的基本信息（任务名称，任务链接，任务描述等 任务信息）作为己方货物，发送给支持这些功能的对等连接，以实现种子共享。如果你在程序左侧的“个人选项”里选中“传送种子文件”，则在其它用户向你请求种子文件时， BS 会将种子文件(以 .torrent 结尾的任务原文件)传送给对方。但比特精灵不会发送除了以上信息以外的任何别的信息。

四 隐私权政策的修订

LANSPIRIT.NET 时常会对隐私权政策进行修改。如果在使用用户个人信息政策方面有大幅度修改时，我们会在网页中显眼的位置贴出相关规定以便及时通知用户。

五 本隐私条约的解释权归 LANSPIRIT.NET 所有。